﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Renci.Data.Interop.OpenGIS.Gml_32
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PassThroughOperationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConcatenatedOperationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeneralTransformationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TransformationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeneralConversionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConversionType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName = "AbstractCoordinateOperationType", Namespace = "http://www.opengis.net/gml/3.2")]
    public abstract class AbstractCoordinateOperationType : IdentifiedObjectType
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("domainOfValidity")]
        public DomainOfValidity DomainOfValidity { get; set; }

        private System.Collections.ObjectModel.Collection<string> _scope = new System.Collections.ObjectModel.Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("scope")]
        public System.Collections.ObjectModel.Collection<string> Scope { get { return this._scope; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("operationVersion")]
        public string OperationVersion { get; set; }

        private System.Collections.ObjectModel.Collection<coordinateOperationAccuracy> _coordinateOperationAccuracy = new System.Collections.ObjectModel.Collection<coordinateOperationAccuracy>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("coordinateOperationAccuracy")]
        public System.Collections.ObjectModel.Collection<coordinateOperationAccuracy> CoordinateOperationAccuracy { get { return this._coordinateOperationAccuracy; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("sourceCRS")]
        public CRSPropertyType SourceCRS { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("targetCRS")]
        public CRSPropertyType TargetCRS { get; set; }
    }
}
